连跳三珠
正反三珠:
小弟的正反三珠
反,其实也是跳的概念,代号为1;
正,其实也是连的概念,代号为2
连跳二珠:
其实在「重临澳门」一文已交代很多了。连跳二珠:
由P(第1列)转为B(第2列),这是跳,代号为1
由B(第2列)转为B(第2列),这是连,代号为2
投式赌的是什么:前面已说,ED23法以赌势为主。所以,一局牌能否赌或者是否值得赌,在于一个条件,就是是否成「势」,也就是能否出现有「规律」的「现象」!所谓规律,就是指能否出现串连或密集性的同一表现;而现象主要连与跳共同构成!再说白点,ED23法赌的其实是跳与连的旺与弱的表现。换句话说,就是买每一列1(1=跳、反)与2(2=连、正)的出现机率!而入局的前设是串连!
就如上节所举的一个牌例:三珠路1=跳成串连,是成势的表现,在串连成形后,我们赌每一列三珠中,二口必有一口1。此局中曾出现一列2,观察一列后,仍出1,故此可视为是小势波动的表现,往后每列仍可以1为下注重点,直至牌尾!
二珠路,跟三珠相同,也是每一列都有1,成串连。所以,我们賭的也是1,也是賭二口必有一口1。同理,前段每一列均有2,成串连,所以,我们也可以賭二口必有一口2。直至其中1列出现11或22,势变开始。牌局中段出现势变,我们该静观牌变,看旺弱所在,然后选旺门顺势而下!以这局言,结合三珠的连跳表现,主势仍在跳,即为旺门,所以仍追每列必有1!直至牌尾!
既然大路、二珠、三珠同賭,就该三路同观!不是三条路选一条来賭,而是三条路混在一起賭!这种賭法,来自下三路的賭法。所以,ED23法的赌法关键,归纳说来有三:
1.二珠及三珠是否同时成势!缺一不可!
2.顺势而博,遇势变则静观其变!
3.大路、二珠、三珠互补,交叉作战!
势变路破,停注几口观察,把之前的势观放开,重新开放思维。接受美女做了整容手术,变成另一个人了,要用新的观点去欣赏她,去发现她的特质,这是中策。赖死不走,吃了美女又要再翻吃,贪心的更想另一美女又再出现任你白吃!结果呢?要唱句走佬的歌:「得了什么?失了什么?....悲乎!此为下策。
看大路的死在哪里?
一是各有所「偏」,各有所「蔽」,认知不全,加上每个人的「心蕴」不同,结论就不一样,所以胜负无常。
二是败在自己:
1.骄者败2.逞英雄者败3.没主见的做羔羊随众而行者败4.太有主见,执着而不变通者败5.没有大势观念,不明察势变者败6.不懂临场机变者败7.下注无章法,随心所欲者败8.情绪随牌变幻而波动,失去控心能力者败9.有压力Dubo者败10.赖死不走,贪胜不知输者败,贪得无厌者惨败-11.诸多迷信却又不懂趋吉避凶者败12.不检讨不上进者,自以为是者,早晚惨败!
三是大路能观察的牌势不完整,片面,所以势变来临而无准备!所以同賭珠路,为的就是补大路之不足。在小弟的观点里,大路是可以参考的,但不能尽信。珠路也如是,只供参考,不能尽信!但三路同观,至少能看全大势!胜算就较大!大路的东西讲之不尽,简言说明如上。
看似简单,但大部分是众多前辈的肺腑之言,小部分某人修习所得。不用付费,轻易得来的或许无价值可言,如何看待,还看自己。尤其常败者,初入賭门者,该好好的把握重点。知易行难,这才是真难处!
为何使用JNI
最近,冰河在分析500多TB的数据,从500多TB的数据中分析用户的行为习惯,以便为用户提供更好的产品体验和推荐更加适合用户的产品。然而,在实现算法的过程中,使用Java语言开发的算法从500多TB的数据中,单独分析某个用户某段时间的行为时,耗费了极大的时间开销。无论我如何优化算法,都不能达到预期的效果。很显然,这不符合性能要求。
一名小伙伴对我说:试试C语言嘛。对啊!我为啥不试试用C语言写算法啊,于是乎,使用C语言写了算法,经过不断的优化和调整,算是初步达到了算法性能要求。但是向数据大屏展示数据的时候,后端还是要以微服务的形式部署,于是我想到了Java中的JNI技术
注:后面单独写一篇我是如何分析500多TB数据的。
如何使用JNI
先说说使用JNI时有哪些坑吧,以避免小伙伴们重复踩坑,这里,大家需要注意的是:在使用JNI技术调用dll动态链接库时,32位dll只能是32位JDK去调用,64位dll只能是64位JDK去调用。这个必须是这样的,如果发现无法调用或者提示版本错误,首先要检查下JDK的位数和dll的位数是否是对应的。
为了能够让小伙伴们顺利的按照文章开发出自己的JNI程序,这里,我就详细的说下如何开发一个JNI程序,主要分三个大的方面来说明如何使用JNI技术调用C和C++写的程序。
理解面向对象编程(OOP)
面向对象编程是C++的核心特性之一,它的思想基于类和对象。类是一种用户定义的数据类型,而对象是这个数据类型的实例。理解OOP的概念有助于组织和设计代码,提高代码的可重用性和可维护性。合理使用继承、封装和多态等概念,可以使代码更加灵活和易于扩展。
使用标准库
C++标准库提供了大量的功能,包括容器、算法、输入输出、字符串处理等。熟练使用标准库可以减少代码量,提高代码的质量,并降低错误的发生概率。例如,使用std::vector代替手动管理动态数组,使用std::sort代替手动实现排序算法。
内存管理
C++不具备自动垃圾回收机制,因此程序员需要负责手动管理内存。频繁的内存泄漏和悬挂指针可能导致程序不稳定。为了避免这些问题,建议使用智能指针(如std::shared_ptr和std::unique_ptr)以及RAII原则,即资源获取即初始化,来自动管理资源的生命周期。
异常处理
异常处理是一种处理错误和异常情况的机制,但滥用异常可能导致性能问题。在合适的情况下使用异常,例如处理不可恢复的错误,但避免在性能敏感的代码中过度使用异常。确保捕获异常的方式不会引入新的问题,同时提供有意义的异常信息以便于调试。
正确使用指针
指针是C++的强大工具,但也是潜在的错误源。理解指针的工作原理,避免野指针和空指针引用,可以提高代码的稳定性。考虑使用引用来替代指针,因为引用不会引入空指针问题,同时更容易理解和使用。
避免使用宏
宏是一种在编译时展开的文本替换,容易引入不易察觉的错误,不易调试。尽量避免使用宏,而是使用常量、枚举和内联函数等替代方案。这样可以提高代码的可读性和可维护性,减少错误的发生概率。